POV-Ray : Newsgroups : povray.binaries.images : Negative Blobs as Differences ( 4 @ about 25k each) : Negative Blobs as Differences ( 4 @ about 25k each) Server Time
9 Aug 2024 21:17:13 EDT (-0400)
  Negative Blobs as Differences ( 4 @ about 25k each)  
From: Dave Matthews
Date: 3 Dec 2004 12:54:32
Message: <41b0a858@news.povray.org>
A common problem facing POVers is how to difference (ouch, that 
shouldn't be a verb!) a bunch of CSG objects from another one, without 
taking hours and hours to render.

Mike Williams has a great tutorial ( 
http://www.econym.demon.co.uk/holetut/ ) that talks about two of the 
methods (subdividing the object and using isosurfaces).  Another handy 
method is to use blobs with negative strength component.

In the first and second pictures I created a blob with a big, flat 
sphere and a bunch of negative cylinders, and then intersected the 
result with a box.  Render times were under 2 minutes, and, as the 
second picture shows, an advantage is that you don't need regularly 
spaced holes (as you would with the subdivision method.)

The third picture shows why I was needing a quicker difference.  I've 
been modeling "milling processes," where a milling tool rotates and cuts 
pieces out of a block.  If the block is a cylinder or a box, the 
subdivision method works fine, with a little prep work, but when you're 
carving out of some more irregularly shaped thing, this negative blob 
method is much easier.  In the fourth picture, I put the milling union 
back in (slightly smaller) as a separate blob, to see how the carving 
was done.

If anyone's interested, I can post the sources to PBSF or PTSF.

Dave Matthews


Post a reply to this message


Attachments:
Download 'nt007b.jpg' (31 KB) Download 'nt007c.jpg' (20 KB) Download 'nt006e.jpg' (24 KB) Download 'nt006d.jpg' (24 KB)

Preview of image 'nt007b.jpg'
nt007b.jpg

Preview of image 'nt007c.jpg'
nt007c.jpg

Preview of image 'nt006e.jpg'
nt006e.jpg

Preview of image 'nt006d.jpg'
nt006d.jpg


 

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.